$(function () {
  // 定义一个查询的参数对象，将来请求数据的时候，
  // 需要将请求参数对象提交到服务器
  const { form, laypage } = layui;
  const q = {
    pagenum: 1, // 页码值，默认请求第一页的数据
    pagesize: 2, // 每页显示几条数据，默认每页显示2条
    cate_id: "", // 文章分类的 Id
    state: "", // 文章的发布状态
  };

  //时间过滤器
  template.defaults.imports.dataFormat = function (date) {
    //获取当前年月日星期几几点几分几秒并打印
    return getTimer(date);
    function getTimer(date) {
      const dt = new Date(date);
      const week = [
        "星期日",
        "星期一",
        "星期二",
        "星期三",
        "星期四",
        "星期五",
        "星期六",
      ];
      const year = dt.getFullYear();
      const month = dt.getMonth() + 1;
      const datee = dt.getDate();
      const day = dt.getDay();
      const time = year + "年" + month + "月" + datee + "日 	" + week[day];
      function getTimerr() {
        const time = new Date();
        let hour = time.getHours();
        hour = hour < 10 ? "0" + hour : hour;
        let minute = time.getMinutes();
        minute = minute < 10 ? "0" + minute : minute;
        let second = time.getSeconds();
        second = second < 10 ? "0" + second : second;
        return hour + ":" + minute + ":" + second;
      }
      return time + " " + getTimerr();
    }
  };
  initTable();
  function initTable() {
    $.ajax({
      method: "GET",
      url: "/my/article/list",
      data: q,
      success(res) {
        if (res.status !== 0) return layer.msg(res.message);
        const htmlStr = template("tpl-table", res);
        $("tbody").html(htmlStr);
        renderPage(res.total);
      },
    });
  }
  initCate();

  //初始化文章分类
  function initCate() {
    $.ajax({
      method: "GET",
      url: "/my/article/cates",
      success: function (res) {
        if (res.status !== 0) {
          return layer.msg("获取分类数据失败！");
        }
        const htmlStr = template("tpl-cate", res);
        $("[name=cate_id]").html(htmlStr);
        form.render();
      },
    });
  }

  //筛选提交
  $("#form-search").on("submit", function (e) {
    e.preventDefault();
    // 获取表单中选中项的值
    var cate_id = $("[name=cate_id]").val();
    var state = $("[name=state]").val();
    // 为查询参数对象 q 中对应的属性赋值
    q.cate_id = cate_id;
    q.state = state;
    // 根据最新的筛选条件，重新渲染表格的数据
    initTable();
  });

  //定义渲染分页
  function renderPage(total) {
    // 调用 laypage.render() 方法来渲染分页的结构
    laypage.render({
      elem: "pageBox", // 分页容器的 Id
      count: total, // 总数据条数
      limit: q.pagesize, // 每页显示几条数据
      curr: q.pagenum, // 设置默认被选中的分页
      layout: ["count", "limit", "prev", "page", "next", "skip"],
      limits: [2, 3, 5, 10],
      jump(obj, first) {
        q.pagenum = obj.curr;
        q.pagesize = obj.limit;
        if (!first) {
          initTable();
        }
      },
    });
  }

  //绑定点击事件
  $("tbody").on("click", ".btn-delete", function () {
    const id = $(this).data("id");
    //获取删除按钮的有几个
    const len = $(".btn-delete").length;
    layer.confirm("确认删除?", { icon: 3, title: "提示" }, function (index) {
      $.ajax({
        method: "get",
        url: "/my/article/delete/" + id,
        success(res) {
          console.log(res);
          if (res.status !== 0) return layer.msg(res.message);
          layer.msg(res.message);
          //判断删除按钮是否剩余一个
          if (len === 1) {
            //剩余一个让页码减去一
            //页码值最小位移
            q.pagenum = q.pagenum === 1 ? 1 : q.pagenum - 1;
          }
          initTable();
        },
      });
      layer.close(index);
    });
  });
});
